如何用一行代码显示当前的时间呢?
环境:
系统:Windows 10(64位)
编程语言:Java
jdk版本:1.8.0_171
软件:Intellij IDEA
类:Date
SimpleDateFormat
包:java.util.Date
java.text.SimpleDateFormat
老方法显示时间
用老方法显示当前时间的方式如下:
1 | Date date = new Date(); |
- 使用Date类来获取当前时间的时间戳
- 使用SimpleDateFormat类规范时间样式为:”yyyy-MM-dd HH:mm:ss”
- 利用format方法规范时间格式
- 输出当前时间
输出结果:
1 | 2018-07-01 15:33:10 |
一行代码显示当前时间
以上的代码可以进行整理,让其成为一句话就可以输出带有格式的当前时间。
实现代码如下:
1 | new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime()) |
输出结果:
1 | 2018-07-01 15:34:23 |
这句话其实就是剔除赋值部分,使其连接在一起输出当前时间,其中样式部分可以更改为想要的效果,不必与我相同。
适用范围与补充
- 适用范围
1.需求只涉及输出当前时间的情况
1 | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); //控制台输出当前时间:2018-07-01 15:34:23 |
在程序中只需要输出当前时间,在任何位置都可以用这句话来显示
2.在代码量多的情况下可以起到精简代码的作用
代码见文中新旧代码
3.设置为全局变量或者静态方法,方便取值
1 | class All_get { |
- 在All_get类中创建静态全局变量date在控制台打印当前时间
- 在All_getnew类中通过All_get类中创建的静态全局变量date在控制台打印当前时间
- 通过这种方式,只要想获取当前时间,只要通过类名.静态属性名(All_get.date)就可以获取当前时间
- 这种方式可以扩展到集合中的赋值,数据库中添加系统当前时间,界面上的时间显示等等
- 这样写,静态变量在类的初始化过程中会被赋值,值将不会改变,要注意。
- 实际运用时,可以采用下面的代码:
1 | static class All_get { |
运行结果:
1 | 2018-07-02 23:53:28 |
用这样的方式就可以取到最新的当前时间了,对于静态的使用,可以看情况而定,我在这里为了方便演示,所以使用了静态属性修饰。
- 补充
这种精简的语句有两种写法:
1 | System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date().getTime())); //控制台输出当前时间:2018-07-01 15:34:23 |
输出结果:
1 | 2018-07-01 15:34:45 |
不难看出,这两句的区别在于后面的new Date().getTime()与new Date()处,这两种输出结果相同,写法不同。
我个人偏向于前者,原因是,加上了.getTime()更易于理解与查找,当然这是我个人喜好,其实两者皆可。